The Mobile Industry Processor Interface (MIPI) Alliance is a global, open-membership organization that develops interface specifications for the mobile ecosystem, including mobile-influenced industries. The MIPI Alliance co-ordinate technologies across the mobile computing industry and the Alliance's focus is to develop specifications that ensure a stable, yet flexible technology ecosystem.
The Camera Serial Interface (CSI) is a specification of the MIPI Alliance. It defines an interface between a camera and a host processor. Vehicle-based applications that include a CSI include front camera advanced driver assistance systems (ADAS), whereby video data is processed to detect pedestrians, objects, issue lane departure warnings, smart head-beam control and traffic sign recognition. The MIPI CSI-2 standard allows concurrent video data reception from up to four virtual channels (VCs). A virtual channel represents a source (which in some instances may be a combination of multiple MIPI sensors), with data transferred on a virtual channel relating to video data from the one (or more) source(s). In the MIPI CSI-2 standard, VCs signify different video data sources. A combination of video sources may also represent one VC. The VCs use a single packet per high-speed (HS) frame, which includes a frame start/frame end, an optional line start/line end and a low power (LP) state between frames.
Referring now to FIG. 1, a simplified known block diagram of a video device 100 that supports the MIPI CSI-2 is illustrated. The video device 100 includes a camera input that provides a series of parallel virtual data channel signals 104 to a microprocessor unit or host controller 110. In the illustration of FIG. 1, four paired virtual channels are shown DP0, DN0 and DP1, DN1 and DP2, DN2 and DP3, DN3. Here, ‘P’ and ‘N’ represent differential signalling. These differential signals include the high speed differential data from the MIPI transmitter to the host controller. The video device 100 also includes a clock input 102, which provides clock signals for the respective P and N MIPI CSI2 compliant video data signals, to the host processor 110. The host processor 110 includes a number of circuits, logic or components, one of which is a virtual channel data decoder 120 that is arranged to decode the video data received on each of the four paired virtual channels 104. The decoded video for all four paired virtual channels is then transferred 122 to memory 130, where all the data is stored.
In an electronic unit, such as video device 100, that supports the MIPI CSI-2 standard, software only is used to program 112 the virtual channels that are enabled/disabled. Software controls are used to enable/disable of the VCs at any time, with the timing of such enable/disable operations being managed via hardware in the electronic unit. However, if the data is stopped for a channel in the middle of processing a running frame, the processing and comparison with other channels of this frame becomes meaningless. It is therefore necessary to disable channels by hardware on an identified timing boundary (for example the frame end) in order to allow coherent processing of data from different channels. A hardware controller 170 within the video device 100 actually decides when any such change should be implemented, mainly because if software alone managed this feature it would need to reconfigure the video data communication links for every such change.
In the known video device 100, any change in the number of virtual channels that are used to transfer video data would require a reconfiguration of the whole system. Therefore, system hardware is required to change the number of streamed virtual channels from, say, four to three, if only three virtual channels were to be used in future for any particular application. Otherwise, to avoid re-configuring the whole system, the inactive channels are still employed and the video cameras produce video data that is not needed or desired, and thus one or more video cameras produce (effectively) null data. However, in this scenario, the null data is still processed and stored. This results in inefficiencies due to redundant data reception, processing and storage. Thus, there is a need to maintain a coherency (accurate timing) of when to enable and/or disable virtual channels and reduce wasteful processing and storage of virtual channel data.